package com.ruoyi.user.domain;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseDateEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 小程序用户管理对象 tb_user
 *
 * @author wuchao
 * @date 2022-03-03
 */
@Data
@TableName("tb_user")
public class User extends BaseDateEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    @ExcelProperty(value = "主键id")
    @TableId(value = "id",type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    @TableField("mobile")
    private String mobile;


    /**
     * 手机号
     */
    @ApiModelProperty(value = "头像")
    @TableField("head_photo")
    private String headPhoto;

    /**
     * 昵称
     */
    @ApiModelProperty(value = "昵称")
    @TableField("nickname")
    private String nickname;


    /**
     * 年龄
     */
    @ApiModelProperty(value = "年龄")
    @TableField("age")
    private Integer age;

    /**
     * 可用积分余额
     */
    @ApiModelProperty(value = "性别\n" +
        "* 0：男、\n" +
        "* 1：女、\n" +
        "* 2：未知")
    @TableField("gender")
    private Integer gender;

    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名")
    @TableField("real_name")
    private String realName;


    /**
     * 生日
     */
    @ApiModelProperty(value = "生日")
    @TableField("birthday")
    private String birthday;


    /**
     * 状态（0：正常，1：不可用）
     */
    @ApiModelProperty(value = "状态（0：正常，1：不可用）")
    @TableField("status")
    private Integer status;

    /**
     * 可用积分
     */
    @ApiModelProperty(value = "可用积分")
    @TableField("free_points")
    private Integer freePoints;

    /**
     * 冻结积分
     */
    @ApiModelProperty(value = "冻结积分")
    @TableField("frozen_points")
    private Integer frozenPoints;

    /**
     * 总积分
     */
    @ApiModelProperty(value = "总积分")
    @TableField("total_points")
    private Integer totalPoints;

    /**
     * 最后一次登录时间
     */
    @ApiModelProperty(value = "最后一次登录时间")
    @TableField("last_login_time")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String lastLoginTime;


    /**
     * 引流来源
     */
    @ApiModelProperty(value = "来源 1:注册 2:koc用户导入")
    @TableField("source_type")
    private Integer sourceType;



    /**
     * 是否为koc用户 0:false 1:true
     */
    @ApiModelProperty(value = "是否为koc用户 0:false 1:true")
    @TableField("is_koc")
    private Integer isKoc;


    /**
     * 用户koc等级表 id
     */
    @ApiModelProperty(value = "用户koc等级表 id")
    @TableField("koc_level_id")
    private Long kocLevelId;


    /**
     * 用户koc等级名称
     */
    @ApiModelProperty(value = "用户koc等级名称")
    @TableField("koc_level_name")
    private String kocLevelName;



    /**
     * 成为当前koc等级时间
     */
    @ApiModelProperty(value = "成为当前koc等级时间")
    @TableField("koc_level_time")
    private Date kocLevelTime;

}
